首页 > 试题广场 >

去除重复字母

[编程题]去除重复字母
  • 热度指数:1322 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串 s ,请你去除字符串中重复的字母(剩下的字符串中每个字符仅出现一次),并在不改变其相对位置的情况下使剩下的字符串字典序最小。

数据范围:字符串长度满足 , 字符串中仅出现小写英文字母
示例1

输入

"abcd"

输出

"abcd"
示例2

输入

"acbcd"

输出

"abcd"
function removeDuplicateLetters( str ) {
    // write code here
    let stack=[]
    for(let i=0;i<str.length;i++){
        if(stack.includes(str[i]))continue
        while(stack[stack.length-1]>str[i]&&str.indexOf(stack[stack.length-1],i)>-1){
            stack.pop()
        }
        stack.push(str[i])
    }
    return stack.join("")
}

发表于 2023-06-28 22:39:04 回复(0)